package com.softlab.mutualsystemprovider.mapper;

import com.softlab.common.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * 用户数据库访问
 *
 * @author gwx
 * @version 1.0
 * @date 2020/7/27 19:41
 */
@Mapper
@Repository
public interface UserMapper {

    /**
     * 添加一个用户，用于注册
     * @param user
     * @return
     */
    int insertUser(User user);

    /**
     * 用于登录，输入用户名和密码，
     * 返回用户的所有信息和生成用户的token
     * @param userName
     * @param password
     * @return
     */
    User getUserByUserNameAndPassword(@Param("userName") String userName,
                                      @Param("password") String password);

    /**
     * 用于退出登录，将token置为空
     * @param userId
     * @return
     */
    int setTokenNull(int userId);

    /**
     * 删除指定id的用户
     * @param userId
     * @return
     */
    int deleteUser(int userId);

    /**
     * 获取指定用户的信息，只返回
     * @param userId
     * @return
     */
    User getUserInfByUserId(int userId);

    /**
     * 修改用户信息
     * @param userId
     * @param userInf
     * @return
     */
    int updateUserInf(@Param("userId") int userId,
                      @Param("userInf") String userInf);
}
